feat(transcript): noise tagging + llm review-relevance grading#495
feat(transcript): noise tagging + llm review-relevance grading#495plind-junior wants to merge 1 commit into
Conversation
make the review console's session transcript skimmable. two layers over the normalized transcript, both presentation-only — the raw session file stays the evidence of record. deterministic noise tagging (transcript.py): classify_noise tags injected scaffolding (system reminders, hook payloads, command output, meta) by prefix, and a message whose blocks are all noise rolls up to a single collapsed stub. no llm. llm review-relevance grading (transcript_grading.py): the deployment's compile.llm_cmd grades the surviving dialog messages key/low (ungraded = normal) so a reviewer skims to the exchanges that matter. every reply is mechanically validated — out-of-range indices, unknown grades, and non-dialog targets are dropped; an unusable reply degrades to an error note on the transcript, never an exception. results cache in state.db keyed by the raw file's content hash (index_db.get/put_transcript_grades). surface: `vouch session transcript --grade` (--regrade bypasses the cache) and the grade/regrade params on kb.session_transcript across mcp + jsonl. the review console renders the noise stubs and key/low badges with notes. capture's load_config gains a VOUCH_CAPTURE_DISABLE guard so the grading llm subprocess does not capture itself back into the kb.
|
Warning Review limit reached
Next review available in: 58 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (15)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
makes the review console's session transcript skimmable — a long agent session
buries the few exchanges a reviewer needs to judge whether the session's
proposals are trustworthy. two presentation-only layers over the normalized
transcript; the raw session file stays the evidence of record.
what changed
transcript.py):classify_noisetagsinjected scaffolding (system reminders, hook payloads, command output, meta)
by prefix, and a message whose blocks are all noise rolls up to a single
collapsed stub. no llm.
transcript_grading.py, new): thedeployment's
compile.llm_cmdgrades the surviving dialog messageskey/low(ungraded = normal) so a reviewer skims to what matters. every reply ismechanically validated — out-of-range indices, unknown grades, non-dialog
targets are dropped; an unusable reply degrades to an error note on the
transcript, never an exception. results cache in
state.dbkeyed by the rawfile's content hash (
index_db.get/put_transcript_grades).vouch session transcript --grade(--regradebypasses thecache) and the
grade/regradeparams onkb.session_transcriptacross mcp(
TranscriptView.tsx,MessageBlock.tsx,transcript.ts).capture.load_configgains aVOUCH_CAPTURE_DISABLEguard so the grading llmsubprocess does not capture itself back into the kb.
verification
full gate green: pytest (whole suite), mypy, ruff; webapp vitest (153 tests) and
tsc && vite build. new tests:test_transcript_grading.py,test_session_transcript.py(+84),TranscriptView.test.tsx(+158). cli flagsconfirmed wired. a live llm-grading drive needs a configured
compile.llm_cmd(not exercised here); the grading pipeline itself is covered by unit tests.